package guigu23y3m7d;

import java.util.ArrayList;

//import static java.lang.System.*;

/**
 * 
 * @author Knife
 *
 *         如果使用的是类或者接口下的java.lang包定义下面的可以省略import 类或者接口是本类下的，则就可以不用导入，省略import ×
 *         如果使用的是同名的类，则必须至少有一个类进行全类名的方式显示： Account a = new Account(2000);
 *         guigu23y3m6d.Account a1 = new guigu23y3m6d.Account(1000,2000,0.012);
 *         这个上面的就是全类名" (包名.类名) "的形式加以区分
 *
 *         XXX.*的方式可以使用本包下的所有结构，如果本包下面还有
 *         包(guigu23y3m4d.jaca2),再调用guigu23y3m4d.jaca2下面的类, 还是需要导入包的
 *
 *
 *         import static ：导入指定类或者接口的 静态结构 属性或者方法
 *
 *
 *
 *         封装性的体现： 一、get与set方法、 二、不对外暴露私有方法 三、单例模式（构造器私有化）
 *         四、如果不希望再包外面被调用，可以将类设置为缺省的
 *
 *         四种权限修饰符 权限大小：private <缺省 <protected <public
 *         对于class的权限修饰只可以用public和default(缺省)
 *
 *
 *         Java语言中，每个类都至少有一个构造器 默认构造器的修饰符与所属类的修饰符一致 一旦显式定义了构造器，则系统不再提供默认构造器
 *         一个类可以创建多个重载的构造器 父类的构造器不可被子类继承
 *
 *
 *
 */
public class PackageimportTest {
	public static void main(String[] args) {
		String str = new String();
		ArrayList list1 = new ArrayList();
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		list1.add("da");
		str.charAt(0);
	}

}

class circle {
	private double r;

	public void setR(double r) {
		this.r = r;
	}

	public double getR() {
		return r;
	}

	public double Mr() {// 不需要有形参，属性已经给了r
		return (Math.PI) * getR() * getR();
	}
}
